home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 1 / BBS in a box - Trilogy I.iso / Files / Publish / Photoshop / Plug-in Modules / Code / PIAcquire.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-04-26  |  5.7 KB  |  147 lines  |  [TEXT/MPS ]

  1. /*
  2.     File: PIAcquire.h
  3.  
  4.     Copyright 1990-91 by Thomas Knoll.    Copyright 1992 by Adobe Systems, Inc.
  5.     All rights reserved.
  6.  
  7.     This file describes version 4.0 of Photoshop's Acquisition module interface.
  8. */
  9.  
  10. #ifndef __PIAcquire__
  11. #define __PIAcquire__
  12.  
  13. #include "PIGeneral.h"
  14.  
  15. /* Operation selectors */
  16.  
  17. #define acquireSelectorAbout    0
  18. #define acquireSelectorStart    1
  19. #define acquireSelectorContinue 2
  20. #define acquireSelectorFinish    3
  21. #define acquireSelectorPrepare    4
  22.  
  23. /*    Error return values. The plug-in module may also return standard Macintosh
  24.     operating system error codes, or report its own errors, in which case it
  25.     can return any positive integer. */
  26.  
  27. #define acquireBadParameters    -30000    /* "a problem with the acquisition module interface" */
  28. #define acquireNoScanner        -30001    /* "there is no scanner installed" */
  29. #define acquireScannerProblem    -30002    /* "a problem with the scanner" */
  30.  
  31. typedef struct AcquireRecord
  32.     {
  33.  
  34.     int32                serialNumber;    /* Host's serial number, to allow
  35.                                            copy protected plug-in modules. */
  36.  
  37.     TestAbortProc        abortProc;        /* The plug-in module may call this no-argument
  38.                                            Boolean valued function (using Pascal calling
  39.                                            conventions) several times a second during long
  40.                                            operations to allow the user to abort the operation.
  41.                                            If it returns TRUE, the operation should be aborted
  42.                                            (and a positive error code returned). */
  43.  
  44.     ProgressProc        progressProc;    /* The plug-in module may call this two-argument
  45.                                            procedure (using Pascal calling conventions)
  46.                                            periodically to update a progress indicator.
  47.                                            The first parameter  of operations completed;
  48.                                            the second is the total number of operations. */
  49.  
  50.     int32                maxData;        /* Maximum number of bytes that should be
  51.                                            passed back at once, plus the size of any
  52.                                            interal buffers. The plug-in may reduce this
  53.                                            value in the acquireSelectorPrepare routine. */
  54.  
  55.     int16                imageMode;        /* Image mode */
  56.     Point                imageSize;        /* Size of image */
  57.     int16                depth;            /* Bits per sample, currently must be 1 or 8 */
  58.     int16                planes;         /* Samples per pixel */
  59.  
  60.     Fixed                imageHRes;        /* Pixels per inch */
  61.     Fixed                imageVRes;        /* Pixels per inch */
  62.  
  63.     LookUpTable            redLUT;         /* Red LUT, only used for Indexed Color images */
  64.     LookUpTable            greenLUT;        /* Green LUT, only used for Indexed Color images */
  65.     LookUpTable            blueLUT;        /* Blue LUT, only used for Indexed Color images */
  66.  
  67.     void *                data;            /* A pointer to the returned image data. The
  68.                                            plug-in module is now responsible for freeing
  69.                                            this buffer (this is a change from previous
  70.                                            versions). Should be set to NIL when
  71.                                            all the image data has been returned. */
  72.  
  73.     Rect                theRect;        /* Rectangle being returned */
  74.     int16                loPlane;        /* First plane being returned */
  75.     int16                hiPlane;        /* Last plane being returned */
  76.     int16                colBytes;        /* Spacing between columns */
  77.     int32                rowBytes;        /* Spacing between rows */
  78.     int32                planeBytes;     /* Spacing between planes (ignored if only one
  79.                                            plane is returned at a time) */
  80.  
  81.     Str255                 filename;        /* Document file name */
  82.     int16                vRefNum;        /* Volume reference number, or zero if none */
  83.     Boolean             dirty;            /* Changes since last saved flag. The plug-in may clear
  84.                                            this field to prevent prompting the user when
  85.                                            closing the document. */
  86.  
  87.     OSType                hostSig;        /* Creator code for host application */
  88.     HostProc            hostProc;        /* Host specific callback procedure */
  89.  
  90.     int32                hostModes;        /* Used by the host to inform the plug-in which
  91.                                            imageMode values it supports.  If the corresponding
  92.                                            bit (LSB = bit 0) is 1, the mode is supported. */
  93.  
  94.     PlaneMap            planeMap;        /* Maps plug-in plane numbers to host plane
  95.                                            numbers.  The host initializes this is a linear
  96.                                            mapping.  The plug-in may change this mapping if
  97.                                            it sees the data in a different order. */
  98.  
  99.     Boolean             canTranspose;    /* Is the host able to transpose the image? */
  100.     Boolean             needTranspose;    /* Does the plug-in need the image transposed? */
  101.  
  102.     Handle                duotoneInfo;    /* Handle to duotone information, if returning a
  103.                                               duotone mode image.    The plug-in is responsible
  104.                                             for freeing this buffer. */
  105.  
  106.     int32                diskSpace;        /* Free disk space on the host's scratch disk or
  107.                                            disks.  Set to a negative number if host does
  108.                                            not use a scratch disk. */
  109.  
  110.     SpaceProc            spaceProc;        /* If not NIL, a pointer to a no-argument
  111.                                            int32 values function (using Pascal calling
  112.                                            conventions) which uses the current settings of
  113.                                            the imageMode, imageSize, depth, and planes
  114.                                            fields to compute the amount of scratch disk
  115.                                            space required to hold the image.  Returns -1
  116.                                            if the settings are not valid. */
  117.  
  118.     PlugInMonitor        monitor;        /* Information on current monitor */
  119.  
  120.     void *                platformData;    /* Platform specific information. */
  121.  
  122.     BufferProcs            *bufferProcs;    /* The buffer procedures.          */
  123.     
  124.     ResourceProcs        *resourceProcs;    /* The plug-in resource procedures. */
  125.     
  126.     ProcessEventProc    processEvent;    /* Pass events to the application. */
  127.  
  128.     Boolean             canReadBack;    /* Can we return data for filtering? */
  129.  
  130.     Boolean             wantReadBack;    /* Does the plug-in want to read the data back? */
  131.  
  132.     Boolean             acquireAgain;    /* If true at finish, call the plug-in again.
  133.                                            Not all hosts may pay attention to this flag. */
  134.  
  135.     Boolean             reservedFlag;    /* Padding set to zero. */
  136.     
  137.     DisplayPixelsProc    displayPixels;    /* Display dithered pixels. */
  138.     
  139.     HandleProcs            *handleProcs;    /* Platform independent handle manipulation. */
  140.  
  141.     char                reserved [228]; /* Set to zero */
  142.  
  143.     }
  144. AcquireRecord, *AcquireRecordPtr;
  145.  
  146. #endif
  147.